Optimizing JML Features Compilation in Ajmlc Using Aspect-Oriented Refactorings
نویسندگان
چکیده
In previous work we presented a new JML compiler, ajmlc, which generates aspects that enforce preconditions, postconditions, and invariants. Although this compiler provides benefits of source-code modularity and small bytecode size and running time, there is still a need for optimization of bytecode size and running time. To do this optimization while preserving the semantics of the resulting code, we optimize using refactorings based on AspectJ programming laws. To this end we present optimization refactorings and an empirical analysis showing the resulting improvements.
منابع مشابه
JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ
The Java Modeling Language (JML) is used to specify designs of Java classes and interfaces. To this end, JML has a rich set of features for specifying methods, including specification inheritance. Thus, the most fundamental motivation for employing JML is to improve functional software correctness of Java applications, and helps to reduce corrective maintenance effort of those applications. Pre...
متن کاملObject-oriented Programming Laws for Annotated Java Programs
Object-oriented programming laws have been proposed in the context of languages that are not combined with a behavioral interface specification language (BISL). The strong dependence between source-code and interface specifications may cause a number of difficulties when transforming programs. In this paper we introduce a set of programming laws for object-oriented languages like Java combined ...
متن کاملSpectators and Assistants: Enabling Modular Aspect-Oriented Reasoning
In current aspect-oriented languages, separate compilation and modular reasoning are not possible. This detracts from comprehensibility and impedes maintenance efforts. We describe language features that would allow aspect-oriented languages to provide separate compilation and modular reasoning. We demonstrate that existing programs written in AspectJ can be easily rewritten using these features.
متن کاملUsing Programming Laws to Modularize Concurrency in a Replicated Database Application
As the use of AspectJ grows, it seems appropriate to define refactorings for that language. Most of the already defined aspect-oriented refactorings do not have a formal basis to ensure it preserves behaviour. This paper shows the application of programming laws and derived refactorings to separate a crosscutting concern from a system’s core logic using AspectJ. We used programming laws to incr...
متن کاملAspect-Oriented Refactoring: Classification and Challenges
This paper provides an overview of the three different kinds of AOP refactorings: aspect-aware OO refactorings, refactorings for AOP constructs, and refactorings of crosscutting concerns. We discuss recent developments for each of them and highlight their commonalities with respect to associated challenges and ties to related research, such as program analysis and aspect mining.
متن کامل